Jump to content

Motorola Moto G4 (motorola-athene)

From postmarketOS Wiki
Motorola Moto G4
Moto G4
Moto G4
Manufacturer Motorola
Name Moto G4
Codename motorola-athene
Released 2016
Type handset
Hardware
Chipset Qualcomm Snapdragon 617 (MSM8952)
CPU 4x 1.6 GHz + 4x 1.2 GHz Cortex-A53
GPU Adreno 405
Display 1080 x 1920
Storage 16/32 GB
Memory 2/3 GB
Architecture aarch64
Software
Original software Android
Original version 6.0.1
postmarketOS
Category testing
Pre-built images no
postmarketOS kernel 3.10.108
Unixbench Whet/Dhry score 2621.7
Features
Flashing
Partial
USB Networking
Works
Battery
Works
Screen
Works
Touchscreen
Works
Multimedia
Audio
Broken
Connectivity
WiFi
Works
Modem
Miscellaneous
Sensors


Contributors

  • fengjiongmax
  • thejsa

Users owning this device


Models/Variants

According to Wikipedia, the G4 (SKU xt162x) and G4 Plus (xt164x) differ only trivially (memory, storage or peripherals/sensors [camera resolution, fingerprint reader]).

How to enter flash mode

  • Power + Volume Down buttons

Installation

$ pmbootstrap flasher flash_rootfs
$ pmbootstrap flasher boot

Problems

  • Firmware issues
  • kernel partition can't be flashed because the boot partition is not big enough
  • Loading the adsp subsystem works momentarily before crashing the device
  • Loading the modem subsystem works momentaily before crashing the device

Firmware issues

Log from dmesg:

[   68.992082] subsys-pil-tz 1de0000.qcom,venus: venus: Failed to locate venus.mdt
[   68.992096] msm_vidc:  err: Failed to download firmware
[   68.992976] msm_vidc:  err: Failed to load video firmware
[   68.993000] msm_vidc:  err: msm_comm_init_core - firmware loading failed
[   68.993007] msm_vidc:  err: Failed to move from state: 1 to 2
[   68.993012] msm_vidc:  err: Failed to move video instance to init state
[   68.993080] msm_vidc:  err: Failed to create video instance, core: 0, type = 0

Hardware details

hwtest output for SKU xt1625

For comparison, results from test_sensors for SKU xt1625 on obsolete sailfishOS version 3.0.0.8 running kernel 3.10.84:

test_sensors output for SKU xt1625

CPU tuning

For unknown reasons, the default configuration boots only 5 cpus, boot_cpus=0,4,5,6,7. This boots only one of the 1.65 GHz cores, and the four 1.21 GHz cores. This can be shown via cpufreq-info (package cpufrequtils), or htop. The default governor is battery-draining "performance".

To utilize all cores, extract and edit (or update) bootimg.cfg from boot.img to use boot_cpus=0-7. Boot the new image via fastboot boot boot.img. Alternatively, edit deviceinfo and repeat pmbootstrap install. This configuration will boot the 4x 1.65 GHz cores as cpus 0-3 and the 4x 1.21 GHz cores as cpus 4-7.

The governor for each quad is assigned separately:

# cpufreq-set -c 0 -r -g ondemand
# cpufreq-set -c 4 -r -g ondemand

This change does not persist across reboots.

ubench results

Photos

|

See also